/**
 * 文件名称:  ITBcUserService.java
 * 文件序号:  序号
 * 内容描述:  用户管理service层接口
 * 版权声明:  山东鸿蝶信息技术有限公司
 * 创建用户:  MissJin
 * 创建日期:  2017/1/17/11:25
 * 修改用户:  无
 * 修改日期:  无
 * 修改说明:  无
 * 文件版本:  V1.0
 * 文件路径:
 */
package com.hongdee.rbac.user.service;

import com.hongdee.rbac.user.entity.TBcUser;

import java.util.List;
import java.util.Map;

/**
 * 名  称: 用户管理service层接口
 * 类  型: interface
 * 描  述: 用户管理service层接口
 * 路  径: com.hongdee.rbac.user.service
 * 作  者: MissJin
 * 日  期: 2017/1/17/11:25
 */
public interface ITBcUserService {
    /**
     * @param mobile 用户手机号
     * @param code   用户编码
     * @param name   用户姓名
     * @param oId    用户所在部门 ID
     * @return Map
     * @throws Exception 基类异常
     * @desc 根据部门 ID ，分页查询其所属用户
     */
    Map page(String start, String limit, String oId, String name, String code, String mobile) throws Exception;

    /**
     * 方法名称: info
     * 方法描述: 查询用户明细service
     * 参数名称: Object object @Entity 注解标注的实体
     * 返回内容: 无
     * 异常说明: 抛出异常Exception
     * 创建用户: MissJin
     * 创建时间: 2017/1/17/16:48
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    Map info(String id) throws Exception;

    /**
     * 方法名称: role
     * 方法描述: 查询用户角色
     * 参数名称: Object object @Entity 注解标注的实体
     * 返回内容: 无
     * 异常说明: 抛出异常Exception
     * 创建用户: MissJin
     * 创建时间: 2017/1/17/17:30
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    List<String> role(String s, String id) throws Exception;

    /**
     * @param id 用户主键
     * @return ResultEntity
     * @throws Exception
     * @desc 查询分配给用户的资源
     */
    List<String> res(String id) throws Exception;

    /**
     * 方法名称: update
     * 方法描述: 用户状态更新
     * 参数名称: id用户主键
     * 返回内容: 无
     * 异常说明: 抛出异常Exception
     * 创建用户: MissJin
     * 创建时间: 2017/1/17/17:45
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    void update(String ids, String status) throws Exception;


    /**
     * 方法名称: saveRes
     * 方法描述: 将 JSON 字符串转换为实体保存在t_user_resource数据库中
     * 参数名称: String  data
     * 返回内容: 保存后的实体对象
     * 异常说明:
     * 创建用户:MissJin
     * 创建时间:2017/1/17
     * 修改用户:
     * 修改时间:
     * 修改内容:
     */
    void saveRes(String id, String[] resIds) throws Exception;

    /**
     * @param id      用户 ID
     * @param type    角色类型
     * @param roleIds 用户 ID 集合
     * @throws Exception
     * @desc 保存分配给用户的角色
     */
    void saveRole(String id, String type, String[] roleIds) throws Exception;

    /**
     * @param id       用户主键
     * @param password 要保存的密码
     * @return void
     * @throws Exception 基类异常
     * @desc 保存密码
     * @author zhangkai
     * @date 2017/2/10
     * @time 13:21
     * @update_user
     * @update_time
     * @update_desc:
     */
    void savePassWord(String id, String password) throws Exception;


    /**
     * @param user 用户实体
     * @return
     * @throws Exception 基类异常
     * @desc 保存用户实体
     * @author zhangkai
     * @date 2017/2/10
     * @time 17:20
     */
    void saveOrUpdate(TBcUser user) throws Exception;

    /**
     * @param
     * @return Map
     * @throws Exception
     * @desc SA下拉查询
     * @author 徐钦勇
     */
    public List<Map> combo(String companyId,String role) throws Exception;

    /**
     * 公司下所有人员
     */
    public Map allUser(String uid, String uname,String companyId, String start, String limit) throws Exception;

    /**
     * 公司下有任务处理权限的人员
     *
     * @author 徐钦勇
     */
    public Map hasQxUser(String uid, String uname, String start, String limit, List<Map> data, String pcode, String code) throws Exception;

    /**
     * 修改用户所在部门
     *
     * @param userId
     * @param deptId
     */
    public void updateDept(String userId, String deptId) throws Exception;

    public Map allusers(String uid)throws Exception;

}
